/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.agtranscontinental.sisref.sessionbean;

import com.agtranscontinental.sisref.constantes.Constante;
import com.agtranscontinental.sisref.dto.FotoDto;
import com.agtranscontinental.sisref.dto.RevisionDto;
import com.agtranscontinental.sisref.model.Configuraciones;
import com.agtranscontinental.sisref.model.Foto;
import com.agtranscontinental.sisref.model.Revision;
import com.agtranscontinental.sisref.sessionremote.RevisionEjbRemote;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;

/**
 *
 * @author ericson
 */
@Stateless
public class RevisionEjbBean implements RevisionEjbRemote {

    @PersistenceContext(unitName = "sisref_pu")
    private EntityManager emSisref;

    @Override
    public RevisionDto persisteRevisionDto(RevisionDto revision) {
        try {
            Query q = emSisref.createNamedQuery("Configuracion.byTpoAndVlor");
            q.setParameter("tpo", Constante.CONF_TPO_NMBRE_TBLA);
            q.setParameter("vlor", Constante.CONF_VLOR_REVISION);
            Configuraciones cfg = (Configuraciones) q.getSingleResult();

            int identificador = Integer.parseInt(cfg.getDccion()) + 1;
            cfg.setDccion(identificador + "");
            revision.setId(identificador);

            emSisref.persist(Revision.parseToRevision(revision));
            emSisref.merge(cfg);

            return revision;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

    @Override
    public FotoDto persisteFotoDto(FotoDto foto) {
        try {
            Query q = emSisref.createNamedQuery("Configuracion.byTpoAndVlor");
            q.setParameter("tpo", Constante.CONF_TPO_NMBRE_TBLA);
            q.setParameter("vlor", Constante.CONF_VLOR_FOTO);
            Configuraciones cfg = (Configuraciones) q.getSingleResult();

            int identificador = Integer.parseInt(cfg.getDccion()) + 1;
            cfg.setDccion(identificador + "");
            foto.setId(identificador);

            emSisref.persist(Foto.parseToFoto(foto));
            emSisref.merge(cfg);

            return foto;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }
}
